package org.example.study1;

// 匿名内部类方式创建线程的类
public class Demo05_Create {
    public static void main(String[] args) {

        /**
         * 使用匿名内部类创建Thread子类实例
         * 本质：创建了一个Thread的匿名子类
         * 特点：
         * 1. 适用于一次性线程任务
         * 2. 避免创建单独类文件
         * 3. 可直接访问外部类的final变量
         */
        Thread thread = new Thread() { // <- 匿名子类开始

            /**
             * 重写父类run方法（线程执行逻辑）
             * 方法特性：
             * 1. 独立线程栈空间
             * 2. 与主线程并发执行
             * 3. 生命周期由JVM管理
             */
            @Override
            public void run() {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("通过Thread匿名内部类的方式创建线程...");
            }
        }; // <- 匿名子类结束


        /**
         * 启动线程
         * 执行流程：
         * 1. JVM创建新线程栈
         * 2. 将匿名类的run()压入栈底
         * 3. 线程进入就绪状态
         * 注意：start()调用后立即返回
         */
        thread.start();
    }
}

/*输出：
通过Thread匿名内部类的方式创建线程...
* */